package com.pureut.order.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.pureut.order.dto.SalesOrderDetailDto;
import com.sale.common.core.web.domain.BaseEntity;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/***
 * 销售订单 入参
 * Author:C
 * Date:2022/11/30 17:50
 * @DESC
 */
@Data
public class SalesOrderVo extends BaseEntity {


    /**
     * id
     */
    private long id;

    /**
     * 客户编码
     */
    @NotNull(message = "客户不能为空")
    private String customerNum;

    /**
     * 状态
     */
    private String status;

    /**
     * 销售订单号
     */
    private String salesOrderNum;

    /**
     * 销售合同单号
     */
    private String salesContractNum;

    /**
     * 物料名称
     */
    private String materialName;

    /**
     * 物料编码
     */
    private String materialCode;

    /**
     * 合同url
     */
    private String contractUrl;

    /**
     * 订单类型
     */
    @NotNull(message = "订单类型不能为空")
    private int orderType;

    /**
     * 订单优先级
     */
    private int orderPriority;

    /**
     * 交货日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date deliveryDate;

    /**
     * 销售人员
     */
    private String attributor;

    /**
     * 创建时间（查询条件）
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String endTime;

    /**
     * 创建时间（查询条件）
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String beginTime;

    /**
     * 客户编码实际传的是客户编码
     */
    private String customerId;

    /**
     * 审核人
     */
    private String reviewBy;

    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date reviewTime;

    /**
     * 关结原因
     */
    private String closeReason;

    /**
     * 销售明细列表
     */
    private List<SalesOrderDetailDto> salesOrderDetailList;


    /**
     * 客户名称
     */
    private String customName;

    /**
     * 开单日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date billingDate;

    /**
     * 备注
     */
    private String remark;

    /**
     * 物料类别
     */
    private String materialCategory;

}
